import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate';
Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    count: 0,
    tabbar: true,
    title: "",
    //   购物车有 id 为88的商品 买两件
    shoplist: []
  },
  getters: {
    getshoplistNum(state) {
      // return state.shoplist.length > 0 ? state.shoplist.length : ""
      return state.shoplist.length || ""
      //          0  ||  ""
    }
  },

  //mutations 专门改变  state 的数据的
  mutations: {

    alldetele(state, data) {
      //  传参方式
      state.shoplist = data


    },


    increment(state) {
      state.count++
    },
    //   专门用来控制 tabbar 变量的
    changetabbar(state, data) {
      state.tabbar = data
    },
    //  专门来改变标题
    changetitle(state, data) {
      state.title = data
    },
    //  专门来添加购物车
    addcart(state, obj) {

      //  添加obj 之前 要判断 这个obj 的id 是否重复 如果有重复 就找重复那个人 叠加
      var c = state.shoplist.findIndex(v => v.id == obj.id)
      if (c < 0) {
        //  说明不存在
        state.shoplist.push(obj)
      } else {
        state.shoplist[c].num = state.shoplist[c].num + obj.num
      }

    },
    addcart2(state, obj) {

      //  不需要叠加
      var c = state.shoplist.findIndex(v => v.id == obj.id)
      if (c < 0) {
        //  说明不存在
        state.shoplist.push(obj)
      } else {
        state.shoplist[c].num = obj.num
      }





    },
    deletecart(state, index) {
      //   state 仓库数据 index  调用函数传递过来的下标
      state.shoplist.splice(index, 1)
      //      从下标几开始删除(index)   1 是删除多少个

    }
  },
  plugins: [createPersistedState()],
})

export default store